#pragma once

#include "Control.h"

namespace ShRp
{
	namespace UI
	{
		namespace Widgets
		{
			class Button;
		};
		namespace Controls
		{
			class SimpleControl : public Control
			{
			public:
				bool Init(int2 _Pos, int2 _Size);

			protected:
				Widgets::Button* m_Button;

				void Paint();

				void MouseDown( MouseButton::E _Btn );
				void MouseUp( MouseButton::E _Btn );
				void KeyDown( Key::En _Key );
				void KeyRepeat( Key::En _Key );
				void KeyUp( Key::En _Key );

				// Only the ControlFactory can access the contructor.
				friend class ShRp::UI::ControlFactory;
				SimpleControl();
			};
			typedef std::vector<SimpleControl*> SimpleControlVector;
		};
	}
};